1. Field of the Invention
This invention relates generally to implantable medical devices and, more particularly, to a firmware architecture permitting modular feature design for implantable medical devices.
2. Description of the Related Art
Since the introduction of the first implantable pacemakers in the 1960s, there have been considerable advances in both the fields of electronics and medicine, such that there is presently a wide assortment of commercially available body-implantable electronic medical devices. The class of implantable medical devices now includes pacemakers, implantable cardioverters, defibrillators, neural stimulators, and drug administering devices, among others. Today""s state-of-the-art implantable medical devices are vastly more sophisticated and complex than earlier ones. Today""s state-of-the-art implantable medical devices are capable of performing significantly more complex tasks. The therapeutic benefits of such devices have been well proven.
As the functional sophistication and complexity of implantable medical device systems have increased over the years, it has become increasingly useful to include a system for facilitating communication between one implanted device and another implanted or external device, for example, a programming console, monitoring system, or the like. Shortly after the introduction of the earliest pacemakers, it became apparent that it would be desirable for physicians to non-invasively obtain information regarding the operational status of the implanted device, and/or to exercise at least some control over the device, e.g., to turn the device on or off or adjust the pacing rate, after implant. As new, more advanced features have been incorporated into implantable devices, it has been increasingly useful to convey correspondingly more information to/from the device relating to the selection and control of those features.
In particular, implantable pacemaker therapies have grown in number and complexity. In conventional devices this growth in the number and complexity of the various implantable pacemaker therapies has led to numerous feature interactions. These feature-to-feature interactions may adversely affect the efficacy of various of the implantable pacemaker therapies. Additionally, conventional devices have provided support for downloadable software, also known as random access memory-ware (RAMware), but the RAMware designs for conventional devices typically are uniform, documented in the product specification, firmware functional design and code listings, xe2x80x9cset in stonexe2x80x9d as it were. Consequently, the RAMware designs for conventional devices typically are difficult to design and/or implement and are relatively inflexible and expensive to reprogram, change and/or improve. For example, a set of xe2x80x9cpatch pointsxe2x80x9d are provided, a fixed number of points in the code where xe2x80x9cpatchxe2x80x9d code could be checked for and, if present, executed.
These patch points typically are not in locations best suited for a particular RAMware application, resulting in a limitation of the functionality of the RAMware application. This limitation of the functionality of the RAMware application has typically made RAMware impractical for many complex features, restricting the use of RAMware to primarily short-term research tools. This limitation of the functionality of the RAMware application could also inflate the size of a patch, since a large block of code that had been bypassed often needed to be replicated to achieve the desired functionality. Since the RAMware applications have to reside among the existing xe2x80x9ctasksxe2x80x9d in the embedded firmware, the RAMware applications could also create timing problems, making it difficult for the firmware to achieve all of the firmware deadlines. Additionally, there is typically no way to preserve and/or back up a RAMware application through a device reset.
Furthermore, feature interactions are difficult to manage in conventional implantable pacemakers. Typically, multiple therapy features, such as Mode Switch (MS) and Rate Drop Response (RDR), are not able to operate at the same time. To resolve adverse feature-to-feature interactions, specific features are typically forced xe2x80x9coffxe2x80x9d (either by the programmer or within the conventional implantable pacemaker) when another feature is turned xe2x80x9con.xe2x80x9d Additionally, these complex feature interactions, particularly in brady and tachy devices, lead to slow and difficult development of feature addition, modification and/or removal, because the features are neither modular nor extensible and cannot easily be added, modified and/or removed from conventional implantable pacemakers during development.
The present invention is directed to overcoming, or at least reducing the effects of, one or more of the problems set forth above.
In one aspect of the present invention, a method is provided, the method comprising controlling an implantable medical device using a controller using a pre-emptive real-time operating system (RTOS) having a scheduling mechanism, the controller having a firmware architecture allowing at least one of modular feature design, modular feature implementation, extensible feature design and extensible feature implementation. The method also comprises analyzing the pre-emptive real-time operating system (RTOS) using rate monotonic analysis, providing an interface with downloadable software for the implantable medical device and backing up at least some of the downloadable software using a non-volatile memory device, protecting at least some of the downloadable software from a reset of the implantable medical device.
In another aspect of the present invention, a device is provided, the device comprising an implantable medical device and a controller controlling the implantable medical device, the controller using a pre-emptive real-time operating system (RTOS) having a scheduling mechanism, the controller having a firmware architecture allowing at least one of modular feature design, modular feature implementation, extensible feature design and extensible feature implementation, the pre-emptive real-time operating system (RTOS) capable of being analyzed using rate monotonic analysis. The device also comprises an interface interfacing with downloadable software for the implantable medical device and a non-volatile memory device capable of protecting at least some of the downloadable software from a reset of the implantable medical device.
In yet another aspect of the present invention, a device is provided, the device comprising means for controlling an implantable medical device using a controller using a pre-emptive real-time operating system (RTOS) having a scheduling mechanism, the controller having a firmware architecture allowing at least one of modular feature design, modular feature implementation, extensible feature design and extensible feature implementation. The device also comprises means for analyzing the pre-emptive real-time operating system (RTOS) using rate monotonic analysis, means for providing an interface with downloadable software for the implantable medical device and means for backing up at least some of the downloadable software using a non-volatile memory device, protecting the at least some of the downloadable software from a reset of the implantable medical device.